www.gusucode.com > matlab编程曲线的高斯拟合,去除趋势性 对于一般非平稳序列的分析源码程序 > matlab编程曲线的高斯拟合,去除趋势性 对于一般非平稳序列的分析源码程序/code/main.m

    
num=input('Please enter the number :');
x=1:num;

[fid,message]=fopen('F:/shiyan/co2zhi.txt','r')
[y,count]=fscanf(fid,'%f',num);
fclose(fid);

ymax=max(y);     
y=y/ymax;                         
ymin=min(y);

y=y-ymin;
y=y';

y0=-log(y+eps);
p=polyfit(x,y0,2);

sigma2=1.0/p(1);
fid2=fopen('F:\shiyan\sigma2.txt','wt');
fprintf(fid2,'%f\n',sigma2);
fclose(fid2);

a=(p(2)*sigma2)/(-2);
fid3=fopen('F:\shiyan\a.txt','wt');
fprintf(fid3,'%f\n',a);
fclose(fid3);


h=exp(a^2/sigma2-p(3))+ymin;

yt=h.*exp(-((x-a).^2/sigma2));
plot(x,y,'ob',x,yt,'-r'),title('拟合曲线');
xlabel('x');
ylabel('y');
figure
yf=y-yt;
%plot(x,yf,'*r'),title('平稳序列');
%xlabel('x');
%ylabel('yf');
%figure
yf=yf';
yf=yf-sum(yf)./num;
fid1=fopen('F:\shiyan\data.txt','wt');
fprintf(fid1,'%f\n',yf);
fclose(fid1);